package org.example.hansp.array_.arraydemo;

public class ArrayReverse {
    public static void main(String[] args) {
        // 定义并初始化一个数组
        int[] arr = {1, 2, 3, 4, 5};

        // method1: 通过交换数组的元素来反转数组
        for (int i = 0; i < arr.length / 2; i++) {
            // 记录当前元素
            int temp = arr[i];
            // 交换当前元素与对称位置的元素
            arr[i] = arr[arr.length - 1 - i];
            arr[arr.length - 1 - i] = temp;
        }

        // 打印反转后的数组
        System.out.print("反转后的数组 (method1): ");
        for (int i = 0; i < arr.length; i++) {
            System.out.print(arr[i] + " ");
        }
        System.out.println();

        // method2: 使用辅助数组来反转数组
        /*
        // 创建一个与原数组大小相同的辅助数组
        int[] arr1 = new int[arr.length];

        // 将原数组的元素从后到前复制到辅助数组中
        for (int i = arr.length - 1, j = 0; i >= 0; i--, j++) {
            arr1[j] = arr[i];
        }

        // 打印辅助数组
        System.out.print("反转后的数组 (method2): ");
        for (int i = 0; i < arr1.length; i++) {
            System.out.print(arr1[i] + " ");
        }
        System.out.println();
        */
    }
}
